package ar.com.arkios.kfconsap.pruebas;

import java.util.*;

import java.io.*;

public class OrderedProperties extends java.util.Properties {

   ArrayList orderedKeys = new ArrayList();

  public OrderedProperties() {

    super();

  }

  public OrderedProperties(java.util.Properties defaults) {

    super(defaults);

  }

  public synchronized Iterator getKeysIterator() {

    return orderedKeys.iterator();

  }

  public static OrderedProperties load(String name)

                                  throws IOException {

    OrderedProperties props = null;

    java.io.InputStream is =

      OrderedProperties.class.getResourceAsStream(name);

    if ( is != null ) {

      props = new OrderedProperties();

      props.load(is);

      return props;

    } else {

      if ( ! name.startsWith("/") ) {

        return load("/" + name);

      } else {

        throw new IOException("Properties could not be loaded.");

      }

    }

 }

 public synchronized Object put(Object key, Object value) {

   Object obj = super.put(key, value);

   orderedKeys.add(key);

   return obj;

 }

 public synchronized Object remove(Object key) {

   Object obj = super.remove(key);

   orderedKeys.remove(key);

   return obj;

 }

}

 
